package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Vector;

import modelo.CargarComboIngrediente;
import modelo.Compra;
import modelo.CompraDAO;
import modelo.State;
import vista.AbstractFactory;
import vista.Comprav;
import modelo.IngredienteDAO;


public class Comprac implements ActionListener {
	
	private Comprav comprav;
	State state;
	private AbstractFactory abs;

	public Comprac(){
		super();
	this.comprav= new Comprav();
	Vector<String> vicky=null;
	IngredienteDAO ingredienteDao = new IngredienteDAO();
	state=new CargarComboIngrediente();
	ingredienteDao.setState(state);
	vicky= ingredienteDao.request();
	this.comprav.Cargar(vicky);
	abs = new Comprav();
	this.comprav.setLocation(480, 210);
	this.comprav.setVisible(true);
	this.comprav.addListener(this);
	}
		
		
		public void actionPerformed(ActionEvent e) {
			String actionCommand = e.getActionCommand();
			if (actionCommand.equals("Registrar")) {
				RegistrarCompra();
			}		
			else if (actionCommand.equals("Cancelar")) {
				comprav.Limpiar();
			}
		}
		private void RegistrarCompra(){
		  	try
			{
		    	if(comprav.getCantidad().equals("") || comprav.getcombo().equalsIgnoreCase("Seleccione...")|| comprav.getCodigoingrediente().equals("")||comprav.getCodigocompra().equals("")) 
		    		
		    		abs.mensaje("Hay Campos vacios, por favor llene todos los campos");
		    	else
		    	{
		    		CompraDAO compraDao = new CompraDAO();	
			        Compra compra = new Compra(comprav.getCodigocompra(),comprav.getcombo(),Float.valueOf(comprav.getCantidad()),comprav.getCodigoingrediente());
			        IngredienteDAO ingredientedao=new IngredienteDAO();
			        
			    	compraDao.Registrar(compra);
			    	IngredienteDAO ingre=new IngredienteDAO();
			    	ingre.ActualizarCantidad(comprav.getcombo(),Float.valueOf(comprav.getCantidad()));
			    	abs.mensaje("La Compra se ha efectuado con exito");
			    	comprav.Limpiar();
		    	}
			}catch(Exception e)
			{
				abs.mensaje("La Compra no ha sido registrada, verifique los datos");
			  comprav.Limpiar();
			}
			
		}
		 

		

			}